Security News
JSR Working Group Kicks Off with Ambitious Roadmap and Plans for Open Governance
At its inaugural meeting, the JSR Working Group outlined plans for an open governance model and a roadmap to enhance JavaScript package management.
The 'err-code' npm package is a utility for creating error objects with custom error codes and properties. It simplifies the process of adding additional context to errors, making them more informative and easier to handle.
Creating an error with a custom code
This feature allows you to create an error object with a custom error code. The custom code can be used to identify the error type more easily.
const createError = require('err-code');
const error = createError(new Error('Something went wrong'), 'E_CUSTOM');
console.log(error.code); // 'E_CUSTOM'
Adding custom properties to an error
This feature allows you to add custom properties to the error object, providing additional context and information about the error.
const createError = require('err-code');
const error = createError(new Error('Something went wrong'), 'E_CUSTOM', { detail: 'Additional error details' });
console.log(error.detail); // 'Additional error details'
Handling errors with custom codes
This feature demonstrates how to handle errors based on their custom codes, allowing for more specific error handling logic.
const createError = require('err-code');
try {
throw createError(new Error('Something went wrong'), 'E_CUSTOM');
} catch (error) {
if (error.code === 'E_CUSTOM') {
console.error('Custom error occurred:', error.message);
}
}
The 'create-error' package provides a way to create custom error types with additional properties. It is similar to 'err-code' but focuses more on creating new error types rather than adding codes to existing errors.
The 'custom-error-generator' package allows you to generate custom error classes with additional properties. It is similar to 'err-code' but offers more flexibility in defining custom error classes.
The 'verror' package is used for creating and manipulating chained errors. It provides more advanced features for error handling and is more complex compared to 'err-code'.
Create new error instances with a code and additional properties.
$ npm install err-code
// or
$ bower install err-code
The browser file is named index.umd.js which supports CommonJS, AMD and globals (errCode).
I find myself doing this repeatedly:
var err = new Error('My message');
err.code = 'SOMECODE';
err.detail = 'Additional information about the error';
throw err;
Simple usage.
var errcode = require('err-code');
// fill error with message + code
throw errcode(new Error('My message'), 'ESOMECODE');
// fill error with message + code + props
throw errcode(new Error('My message'), 'ESOMECODE', { detail: 'Additional information about the error' });
// fill error with message + props
throw errcode(new Error('My message'), { detail: 'Additional information about the error' });
If the passed Error
already has a .code
field, or fields specified in the third argument to errcode
they will be overwritten, unless the fields are read only or otherwise throw during assignment in which case a new object will be created that shares a prototype chain with the original Error
. The .stack
and .message
properties will be carried over from the original error and .code
or any passed properties will be set on it.
$ npm test
Released under the MIT License.
FAQs
Create an error with a code
The npm package err-code receives a total of 10,463,099 weekly downloads. As such, err-code popularity was classified as popular.
We found that err-code demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
At its inaugural meeting, the JSR Working Group outlined plans for an open governance model and a roadmap to enhance JavaScript package management.
Security News
Research
An advanced npm supply chain attack is leveraging Ethereum smart contracts for decentralized, persistent malware control, evading traditional defenses.
Security News
Research
Attackers are impersonating Sindre Sorhus on npm with a fake 'chalk-node' package containing a malicious backdoor to compromise developers' projects.